package com.superai.config;

import io.github.imfangs.dify.client.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Dify客户端配置类
 * 
 * 这个配置类用于创建和配置Dify客户端，包括：
 * - DifyChatClient: 聊天客户端
 * - DifyCompletionClient: 文本生成客户端
 * - DifyChatflowClient: 工作流编排对话客户端
 * - DifyWorkflowClient: 工作流客户端
 * - DifyDatasetsClient: 知识库客户端
 */
@Configuration
public class DifyClientConfig {

    @Value("${dify.base-url}")
    private String baseUrl;

    @Value("${dify.api-key}")
    private String apiKey;

    /**
     * 创建聊天客户端
     * 
     * @return DifyChatClient 聊天客户端实例
     */
    @Bean
    public DifyChatClient chatClient() {
        return DifyClientFactory.createChatClient(baseUrl, apiKey);
    }

    /**
     * 创建文本生成客户端
     * 
     * @return DifyCompletionClient 文本生成客户端实例
     */
    @Bean
    public DifyCompletionClient completionClient() {
        return DifyClientFactory.createCompletionClient(baseUrl, apiKey);
    }
    
    /**
     * 创建工作流编排对话客户端
     * 
     * @return DifyChatflowClient 工作流编排对话客户端实例
     */
    @Bean
    public DifyChatflowClient chatflowClient() {
        return DifyClientFactory.createChatWorkflowClient(baseUrl, apiKey);
    }

    /**
     * 创建工作流客户端
     * 
     * @return DifyWorkflowClient 工作流客户端实例
     */
    @Bean
    public DifyWorkflowClient workflowClient() {
        return DifyClientFactory.createWorkflowClient(baseUrl, apiKey);
    }

    /**
     * 创建知识库客户端
     * 
     * @return DifyDatasetsClient 知识库客户端实例
     */
    @Bean
    public DifyDatasetsClient datasetsClient() {
        return DifyClientFactory.createDatasetsClient(baseUrl, apiKey);
    }
}
